"""
refer: https://blog.csdn.net/ELF1111/article/details/105474242
@小军哥：你要的猪头
"""

import math
import sys

T = float


def c(x, y, r):
    return math.sqrt(x * x + y * y) - r


def u(x, y, t):
    return x * math.cos(t) + y * math.sin(t)


def v(x, y, t):
    return y * math.cos(t) - x * math.sin(t)


def fa(x, y):
    return min(c(x, y, 0.5), c(x * 0.47 + 0.15, y + 0.25, 0.3))


def no(x, y):
    return c(x * 1.2 + 0.97, y + 0.25, 0.2)


def nh(x, y):
    return min(c(x + 0.9, y + 0.25, 0.03), c(x + 0.75, y + 0.25, 0.03))


def ea(x, y):
    return min(c(x * 1.7 + 0.3, y + 0.7, 0.15), c(u(x, y, 0.25) * 1.7, v(x, y, 0.25) + 0.65, 0.15))


def ey(x, y):
    return min(c(x + 0.4, y + 0.35, 0.1), c(x + 0.15, y + 0.35, 0.1))


def pu(x, y):
    return min(c(x + 0.38, y + 0.33, 0.03), c(x + 0.13, y + 0.33, 0.03))


def fr(x, y):
    return c(x * 1.1 - 0.3, y + 0.1, 0.15)


def mo(x, y):
    return max(c(x + 0.15, y - 0.05, 0.2), -c(x + 0.15, y, 0.25))


def o(x, y, f, i):
    r = f(x, y)
    if abs(r) < 0.02:
        return (math.atan2(f(x, y + 1e-3) - r, f(x + 1e-3, y) - r) + 0.3) * 1.273 + 6.5
    elif r < 0:
        return i
    else:
        return 0


def s(x, y, f, i):
    return i if f(x, y) < 0 else 0


def f(x, y):
    return max(o(x, y, no, 1), max(o(x, y, fa, 1), max(o(x, y, ey, 11), max(o(x, y, ea, 1), max(o(x, y, mo, 1),
                                                                                                max(s(x, y, fr, 13),
                                                                                                    s(x, y, pu,
                                                                                                      12)))))))


def main(scale_factor=None):
    scale_factor = float(sys.argv[1]) if len(sys.argv) > 1 else 1.0
    chars = " ..||//==\\\\||//==\\\\|| @@!!"

    for y in [y for y in range(-100, 60)]:  # y 从 -100 到 59, 步长 0.05
        y_val = y * 0.05 / scale_factor
        line = []
        for x in [x for x in range(-100, 240)]:  # x 从 -100 到 239, 步长 0.025
            x_val = x * 0.02 / scale_factor
            idx = int(f(u(x_val, y_val, 0.3), v(x_val, y_val, 0.3)))
            line.append(chars[idx])
        print(''.join(line))


if __name__ == "__main__":
    main()
